﻿/** 
 * Ajoute des fonctions utiles à l'objet String
 */

/**
 * Permet de savoir si la chaîne de caractère commence par une chaîne précise
 *
 * @param {String} beginStr la chaîne qui doit apparaître au début
 *
 * @return {bool} True si la chaîne commence par beginStr, false sinon
 */
String.prototype.beginsWith = function(beginStr)
{
	var str = this.toString();
	if (str.substr(0,beginStr.length) == beginStr)
		return true;
	else
		return false;
};

/**
 * Permet de savoir si la chaîne de caractère finit par une chaîne précise
 *
 * @param {String} endStr la chaîne qui doit apparaître à la fin
 *
 * @return {bool} True si la chaîne finit par endStr, false sinon
 */
String.prototype.endsWith = function(endStr)
{
	var str = this.toString();
	if (str.substr(-1*(endStr.length)) == endStr)
		return true;
	else
		return false;
};

/**
 * Transforme une chaîne de caractère en objet Blob (fichier)
 * Cet objet peut ensuite être passé dans un FormData pour faire de l'envoie de fichier
 * asynchrone, sur les nouveaux navigateurs (IE 10+, Chrome 7+, Firefox 4+, Safari 5+)
 */
String.prototype.toBlobFile = function(type) {
	
	if (!type) {
		type = "application/octet-stream";
	}
	
	var str = this.toString();
	var byteArray = new Uint8Array(str.length);
	for (var i = 0; i < str.length; i++) {
		byteArray[i] = str.charCodeAt(i) & 0xff;
	}
	
	var blob = new Blob([byteArray.buffer],{type: type});

	return blob;
};
